/**
 * 
 */
package br.org.sjc.validacao;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.net.ParseException;


/**
 * @author rodrigo.ramos
 *
 */
public class ManipulaData {
	public String dataHoje(){
		Calendar calendario = Calendar.getInstance();
		int ano = calendario.get(Calendar.YEAR);
		int mes = calendario.get(Calendar.MONTH);
		int dia = calendario.get(Calendar.DAY_OF_MONTH);
		String data = String.valueOf(dia) + "-"+ String.valueOf(mes+1) + "-" + String.valueOf(ano);
		return data;
	}

	/**
	 * Converte uma String para um objeto Date. Caso a String seja vazia ou nula, 
	 * retorna null - para facilitar em casos onde formul�rios podem ter campos
	 * de datas vazios.
	 * @param data String no formato dd/MM/yyyy a ser formatada
	 * @return Date Objeto Date ou null caso receba uma String vazia ou nula
	 * @throws Exception Caso a String esteja no formato errado
	 */
	public static Date formataData(String data) throws Exception { 
		if (data == null || data.equals(""))
			return null;

		Date date = null;
		try {
			SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
			date = (java.util.Date)formatter.parse(data);
		} catch (ParseException e) {            
			throw e;
			//Log.e(TAG,"formataData - Erro na conversão:"+e.getMessage());
		}
		return date;
	}

	public boolean DataMaiorQueHoje(String Data) throws Exception{
		boolean retorno = false;

		if (formataData(Data).after(formataData(dataHoje()))){
			retorno = true;
		}
		return retorno;
	}
	//Fun��o DataOk
	public boolean DataOk(String Dt) throws java.text.ParseException{
	    SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
	    df.setLenient(false);
	        try {
	            df.parse(Dt);
	            return true;
	        } catch (ParseException ex) {
	            return false;
	        }
	}
	
	public boolean MaiorQue1900(String Data)throws Exception{
		boolean retorno = false;
		
		if (formataData(Data).after(formataData("31-12-1899"))){
			retorno = true;
		}
		
		return retorno;
	}
}
